package thread;

/**
 * 线程的优先级
 * 线程有10个优先级,分别用整数1-10表示,其中1最低,10最高,5为默认值
 *
 * 线程start方法调用后就纳入到了线程调度器中被统一管理,线程无法主动索取时间片,只能被动
 * 被分配.调度器会尽可能均匀的将时间片分配给每个线程(整体上每个线程获取时间片的概率是一致
 * 的),调整线程的优先级可以最大程度的改变获取时间片的概率.优先级越高的线程获取时间片的概率
 * 越高
 */
public class PriorityDemo {
    public static void main(String[] args) {

        Thread min = new Thread(){
            public void run(){
                for (int i = 0; i < 10000; i++) {
                    System.out.println("min");
                }
            }
        };
        Thread max = new Thread(){
            public void run(){
                for (int i = 0; i < 10000; i++) {
                    System.out.println("max");
                }
            }
        };
        Thread norm = new Thread(){
            public void run(){
                for (int i = 0; i < 10000; i++) {
                    System.out.println("nor");
                }
            }
        };
//        min.setPriority(1);//最小优先级
//        max.setPriority(10);//最高优先级
        min.setPriority(Thread.MIN_PRIORITY);
        max.setPriority(Thread.MAX_PRIORITY);
        min.start();
        norm.start();
        max.start();

    }
}
